package com.cw.jeeyt.dao.mapper.process;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cw.jeeyt.common.Order;
import com.cw.jeeyt.common.annotation.LogParam;
import com.cw.jeeyt.dao.model.process.ProcessLeaveDo;

/**
 * 请假流程 dao数据库操作接口
 *
 * @author chenw
 * @date 2019-03-10 20:55:56
 */
public interface ProcessLeaveMapper {
    /**
     * 新增请假流程
     *
     * @param processLeave
     * @return 整数
     */
    @LogParam(logDes = "新增请假流程", operateModule = "请假流程管理")
    Integer insert(ProcessLeaveDo processLeave);

    /**
     * 新增请假流程不为空的字段
     *
     * @param processLeave
     * @return 整数
     */
    @LogParam(logDes = "新增请假流程", operateModule = "请假流程管理")
    Integer insertSelective(ProcessLeaveDo processLeave);

    /**
     * 删除请假流程
     *
     * @param processLeave
     */
    @LogParam(logDes = "删除请假流程", operateModule = "请假流程管理")
    void delete(ProcessLeaveDo processLeave);

    /**
     * 修改请假流程不为null的字段
     *
     * @param processLeave
     */
    @LogParam(logDes = "修改请假流程", operateModule = "请假流程管理")
    void updateSelective(ProcessLeaveDo processLeave);

    /**
     * 修改请假流程
     *
     * @param processLeave
     */
    @LogParam(logDes = "修改请假流程", operateModule = "请假流程管理")
    void update(ProcessLeaveDo processLeave);

    /**
     * 根据主键查询请假流程
     *
     * @return 请假流程
     */
    ProcessLeaveDo getById(@Param("id") String id);

    /**
     * 查询所有请假流程
     *
     * @return 请假流程集合
     */
    List<ProcessLeaveDo> queryProcessLeaveList();

    /**
     * 分页查询请假流程
     *
     * @param processLeave 查询条件
     * @return 请假流程集合
     */
    List<ProcessLeaveDo> queryByPage(@Param("processLeave") ProcessLeaveDo processLeave, @Param("order") Order order)
   ;

    /**
     * 更新部门领导审批意见
     *
     * @param leave
     * @return
     */
    int updateLeadText(ProcessLeaveDo leave);

    /**
     * 更新Hr意见
     *
     * @param leave
     * @return
     */
    int updateHRText(ProcessLeaveDo leave);
}
